package org.dxy.infrastructure.persistent.po.query;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 工位基础信息
 * 工位管理、配置
 * @author dxy
 * @createTime 2025/10/13
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("view_workstation_basic")
public class WorkstationBasicViewPo {

    /**
     * 工位ID
     */
    @TableId(type = IdType.INPUT)
    private Long id;

    /**
     * 工位编码，唯一标识
     */
    private String workstationCode;

    /**
     * 工位名称
     */
    private String workstationName;

    /**
     * 所属产线ID
     */
    private Long productionLineId;

    /**
     * 所属车间ID
     */
    private Long workshopId;

    /**
     * 所属工厂ID
     */
    private Long factoryId;

    /**
     * 工位类型，例如 MANUAL/AUTOMATIC/SEMI_AUTOMATIC
     */
    private String workstationType;

    /**
     * 工位状态，例如 IDLE/RUNNING/FAULT
     */
    private String status;

    /**
     * 工位在产线中的位置序号
     */
    private Integer position;

    /**
     * 工位描述
     */
    private String description;

    /** 创建人 */
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /** 修改人 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    /** 逻辑删除标识 0-未删除 1-已删除 */
    @TableLogic
    private Integer deleted;
}